From ca00527e5fc3d8d2b8c1a60fbeb6a25e2bf68674 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20H=C3=A4rdeman?= Date: Tue, 9 Dec 2025 10:11:08 +0100 Subject: [PATCH] statefiles: don't write empty hosts files MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This is mostly cosmetic, skip writing out hosts files for interfaces where it makes little sense to do so (i.e. where the hosts file will anyway be empty). Closes: https://github.com/openwrt/odhcpd/issues/338 Signed-off-by: David Härdeman Link: https://github.com/openwrt/odhcpd/pull/342 Signed-off-by: Álvaro Fernández Rojas --- src/statefiles.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/statefiles.c b/src/statefiles.c index 0ce2a2e..558b012 100644 --- a/src/statefiles.c +++ b/src/statefiles.c @@ -415,7 +415,15 @@ static void statefiles_write_hosts(time_t now) return; avl_for_each_element(&interfaces, ctxt.iface, avl) { + if (ctxt.iface->ignore) + continue; + + if (ctxt.iface->dhcpv4 != MODE_SERVER && ctxt.iface->dhcpv6 != MODE_SERVER) + continue; + ctxt.fp = statefiles_open_tmp_file(config.dhcp_hostsdir_fd); + if (!ctxt.fp) + continue; if (ctxt.iface->dhcpv6 == MODE_SERVER) { struct dhcpv6_lease *lease; @@ -534,6 +542,7 @@ static bool statefiles_write_state(time_t now) }; uint8_t newmd5[16]; + /* Return value unchecked, continue in order to get the md5 */ ctxt.fp = statefiles_open_tmp_file(config.dhcp_statedir_fd); md5_begin(&ctxt.md5); -- 2.30.2